﻿// ***********************************************************************
// Assembly         : YERIL_PI_INT
// Author           : Diego Bonilla
// Created          : 03-02-2014
//
// Last Modified By : Diego Bonilla
// Last Modified On : 03-02-2014
// ***********************************************************************
// <copyright file="Usuarios.aspx.cs" company="Development Solutions CR">
//     Copyright (c) Development Solutions CR. All rights reserved.
// </copyright>
// <summary></summary>
// ***********************************************************************
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

/// <summary>
/// The Login namespace.
/// </summary>
namespace YERIL_PI_INT.PaginasWebs.Modulos.Login
{
    /// <summary>
    /// Class Usuarios.
    /// </summary>
    public partial class Usuarios : System.Web.UI.Page
    {
        /// <summary>
        /// The form accion
        /// </summary>
        static string  FormAccion = "";
        /// <summary>
        /// The mensaje error
        /// </summary>
        public string MensajeError = "";
        /// <summary>
        /// The codigo
        /// </summary>
        static int codigo = 0;
        /// <summary>
        /// Handles the Load event of the Page control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {   if (Session["FormAccion"] != null)
                {
                    FormAccion = Session["FormAccion"].ToString();
                    
                }
               

                if (Session["Codigo"] != null)
                {
                    codigo = Convert.ToInt32(Session["Codigo"]);
                    
                }
                

                if (!IsPostBack)
                { 
                    Cargar_Combos();
                    dlEstadoUsuario.SelectedValue = "1";
                    dlPuesto.SelectedValue = "1";
                   if (FormAccion == "Editar")
                    {
                        if(codigo!=0)
                        {
                            CargarEditar();
                        }
                    }
                
                }

            }
            catch (Exception exc)
            {

                MensajeError = exc.ToString();
            }
        }

        /// <summary>
        /// Cargars the editar.
        /// </summary>
        private void CargarEditar()
        {
            WSGestion.WSGestion wsgest = new WSGestion.WSGestion();
            wsgest.Url = ConfigurationManager.AppSettings.Get("dirWs");
            WSGestion.MOD_Usuarios objUsuario = new WSGestion.MOD_Usuarios();
            objUsuario = wsgest.SEL_UsuarioByID(codigo);
            txtNombreusuario.Text = objUsuario.USU_nombre;
            txtPrimerApellido.Text = objUsuario.USU_primapellido;
            txtSegundoApellido.Text = objUsuario.USU_segapellido;
            txtTelefono.Text = objUsuario.USU_telefono;
            dlEstadoUsuario.SelectedValue = objUsuario.Estusu_codestado.ToString();
            TxtEmail.Text = objUsuario.USU_email;
            TxtContrasena.Text = objUsuario.USU_contrasena;
            txtdireccion.Text = objUsuario.USU_direccion;
            dlPuesto.SelectedValue = objUsuario.USU_cod_puesto.ToString();

        }

        /// <summary>
        /// Cargar_s the combos.
        /// </summary>
        private void Cargar_Combos()
        {
            try
            {WSGestion.WSGestion wsgest = new WSGestion.WSGestion();
             wsgest.Url = ConfigurationManager.AppSettings.Get("dirWs");
             List<WSGestion.MOD_Usuarios> ListaEstadoUsuario = wsgest.SEL_ESTUSUARIO().ToList();
             this.dlEstadoUsuario.DataSource = ListaEstadoUsuario;
             this.dlEstadoUsuario.DataValueField = "ESTUSU_CODESTADO";
             this.dlEstadoUsuario.DataTextField = "ESTUSU_NOMBRE";
             this.dlEstadoUsuario.DataBind();

             List<WSGestion.MOD_Usuarios> ListaPuestos = wsgest.SEL_PUESTO().ToList();
             this.dlPuesto.DataSource = ListaPuestos;
             this.dlPuesto.DataValueField = "PUE_COD_PUESTO";
             this.dlPuesto.DataTextField = "PUE_DESCRIPCION";
             this.dlPuesto.DataBind();


            }
            catch (Exception exc)
            {

                MensajeError = exc.ToString();
            }
            

        }

        /// <summary>
        /// Handles the Click event of the btnSalir control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="ImageClickEventArgs"/> instance containing the event data.</param>
        protected void btnSalir_Click(object sender, ImageClickEventArgs e)
        {
            Response.Redirect("GridUsuarios.aspx");
        }

        /// <summary>
        /// Handles the Click event of the btnAgregarUsuario control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="ImageClickEventArgs"/> instance containing the event data.</param>
        protected void btnAgregarUsuario_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                if (FormAccion == "Agregar")
                {
                    WSGestion.WSGestion wsgest = new WSGestion.WSGestion();
                    wsgest.Url = ConfigurationManager.AppSettings.Get("dirWs");
                    WSGestion.MOD_Usuarios Usuario = new WSGestion.MOD_Usuarios();

                    Usuario.USU_nombre = txtNombreusuario.Text;
                    Usuario.USU_primapellido = txtPrimerApellido.Text;
                    Usuario.USU_segapellido = txtSegundoApellido.Text;
                    Usuario.USU_telefono = txtTelefono.Text;
                    Usuario.USU_contrasena = TxtContrasena.Text;
                    Usuario.USU_direccion = txtdireccion.Text;
                    Usuario.USU_email = TxtEmail.Text;
                    Usuario.USU_cod_puesto = Convert.ToInt32(dlPuesto.SelectedValue.ToString());
                    Usuario.Estusu_codestado= Convert.ToInt32(dlEstadoUsuario.SelectedValue.ToString());
                    int cant_usu=wsgest.SEL_UsuarioByEmail(TxtEmail.Text);
                    if(cant_usu<=0)
                    {  if(wsgest.CRE_Usuario(Usuario))
                        {
                            Response.Redirect("GridUsuarios.aspx");
                        }
                        else
                        {
                            MensajeError="Procedimiento Almacenado no aceptado";
                        }
                    }
                    else
                    {
                        MensajeError="El correo electrónico ya existe";
                    }

                }

                if (FormAccion == "Editar")
                {
                    WSGestion.WSGestion wsgest = new WSGestion.WSGestion();
                    wsgest.Url = ConfigurationManager.AppSettings.Get("dirWs");
                    WSGestion.MOD_Usuarios Usuario = new WSGestion.MOD_Usuarios();
                    Usuario.USU_codusuario = codigo;
                    Usuario.USU_nombre = txtNombreusuario.Text;
                    Usuario.USU_primapellido = txtPrimerApellido.Text;
                    Usuario.USU_segapellido = txtSegundoApellido.Text;
                    Usuario.USU_telefono = txtTelefono.Text;
                    Usuario.USU_contrasena = TxtContrasena.Text;
                    Usuario.USU_direccion = txtdireccion.Text;
                    Usuario.USU_email = TxtEmail.Text;
                    Usuario.USU_cod_puesto = Convert.ToInt32(dlPuesto.SelectedValue.ToString());
                    Usuario.Estusu_codestado = Convert.ToInt32(dlEstadoUsuario.SelectedValue.ToString());

                    wsgest.UPD_Usuario(Usuario);
                    Response.Redirect("GridUsuarios.aspx");
                    
                }

            }
            catch (Exception exc)
            {

                MensajeError = exc.ToString();
            }
            
        }

        
    }
}